asdas1241 commited on
Commit
552edbd
verified
1 Parent(s): 51ddc3c

Upload 2 files

Browse files
Files changed (3) hide show
  1. .gitattributes +1 -0
  2. app.py +17 -6
  3. ffmpeg +3 -0
.gitattributes CHANGED
@@ -34,3 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  iarec.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  iarec.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ ffmpeg filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -14,23 +14,31 @@ hls_segment_prefix = "stream"
14
 
15
  # Comando FFmpeg para transmitir video en HLS (en loop continuo)
16
  ffmpeg_command = [
17
- 'ffmpeg',
18
  '-re',
19
  '-stream_loop', '-1', # Repetir el video en loop
20
  '-i', video_file,
 
21
  '-c:v', 'libx264',
22
- '-c:a', 'aac',
23
- '-crf', '23',
24
- '-b:a', '128k',
 
25
  '-preset', 'slow',
26
  '-f', 'hls',
27
- '-hls_time', '10', # Duraci贸n de cada segmento en segundos
28
- '-hls_list_size', '10', # N煤mero de segmentos en la lista de reproducci贸n
29
  '-hls_flags', 'append_list+omit_endlist', # A帽adir a la lista sin eliminar los antiguos
30
  '-hls_segment_filename', f'{hls_segment_prefix}%03d.ts', # Nombre de archivo de los segmentos
31
  hls_output
32
  ]
33
 
 
 
 
 
 
 
34
  def stream_video():
35
  try:
36
  process = subprocess.Popen(ffmpeg_command)
@@ -40,6 +48,7 @@ def stream_video():
40
 
41
  @app.on_event("startup")
42
  async def startup_event():
 
43
  # Espera activa para verificar que el archivo M3U8 est茅 generado
44
  while not os.path.exists(hls_output):
45
  print("Esperando a que se genere el archivo M3U8...")
@@ -67,6 +76,8 @@ def get_segment(segment: int):
67
  return Response(status_code=404, content="Segment not found")
68
 
69
  if __name__ == "__main__":
 
 
70
  video_process = Process(target=stream_video)
71
  video_process.start()
72
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
14
 
15
  # Comando FFmpeg para transmitir video en HLS (en loop continuo)
16
  ffmpeg_command = [
17
+ './ffmpeg',
18
  '-re',
19
  '-stream_loop', '-1', # Repetir el video en loop
20
  '-i', video_file,
21
+ '-vf', 'fps=24',
22
  '-c:v', 'libx264',
23
+ '-c:a', 'libfdk_aac',
24
+ '-profile:a', 'aac_he_v2',
25
+ '-crf', '32',
26
+ '-b:a', '32k',
27
  '-preset', 'slow',
28
  '-f', 'hls',
29
+ '-hls_time', '15', # Duraci贸n de cada segmento en segundos
30
+ '-hls_list_size', '15', # N煤mero de segmentos en la lista de reproducci贸n
31
  '-hls_flags', 'append_list+omit_endlist', # A帽adir a la lista sin eliminar los antiguos
32
  '-hls_segment_filename', f'{hls_segment_prefix}%03d.ts', # Nombre de archivo de los segmentos
33
  hls_output
34
  ]
35
 
36
+ def make_ffmpeg_executable():
37
+ try:
38
+ subprocess.run(["chmod", "+x", "./ffmpeg"], check=True)
39
+ except subprocess.CalledProcessError as e:
40
+ print(f"Error al cambiar permisos de FFmpeg: {e}")
41
+
42
  def stream_video():
43
  try:
44
  process = subprocess.Popen(ffmpeg_command)
 
48
 
49
  @app.on_event("startup")
50
  async def startup_event():
51
+ make_ffmpeg_executable() # Asegurarse de que FFmpeg sea ejecutable
52
  # Espera activa para verificar que el archivo M3U8 est茅 generado
53
  while not os.path.exists(hls_output):
54
  print("Esperando a que se genere el archivo M3U8...")
 
76
  return Response(status_code=404, content="Segment not found")
77
 
78
  if __name__ == "__main__":
79
+ # Asegurarse de que FFmpeg sea ejecutable antes de iniciar el proceso
80
+ make_ffmpeg_executable()
81
  video_process = Process(target=stream_video)
82
  video_process.start()
83
  uvicorn.run(app, host="0.0.0.0", port=7860)
ffmpeg ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d6d9c33e7a0ccb8a4774efbbe690697ecf3c8134abc1b34d6072499d478d7c8
3
+ size 67504768